home *** CD-ROM | disk | FTP | other *** search
/ FishMarket 1.0 / FishMarket v1.0.iso / fishies / 351-375 / disk_369 / aqdata / aquadoc < prev    next >
Text File  |  1992-05-06  |  12KB  |  225 lines

  1.  
  2.  
  3.  
  4.  
  5.     The following is information provided for those wishing to update and
  6.     maintain the Aquarium V1.12 data base files.  Aquarium and NewFish are
  7.     programs from Disk 301 submitted to the AmigaLib Disk collection by
  8.     B Lennart Olsson.  The programs are copyright 1989, however, they are
  9.     redistributable when the Aquarium.DOC file (copyright header prepended)
  10.     is included in the distribution.  See AmigaLib Disk 301 documentation
  11.     for details.
  12.  
  13.     This document has a short description of the Aquarium V1.12 data base.
  14.     The data base is in the Aquarium directory "data", and consists of just
  15.     four files (not including the .info file), all of which are described
  16.     below.
  17.  
  18.     KeyNames
  19.  
  20.     The KeyNames file contains the text which will appear in the search
  21.     key subwindows upon running the Aquarium program.  The file has 30 or
  22.     more lines.  The file is a completely ASCII readable file, which is
  23.     easily edited or repaired (if you have even a remotely recent copy and
  24.     a fair memory).  The file has its own documentation (beyond line 30).
  25.     Only the first 15 characters of each of the first 30 lines are used by
  26.     the Aquarium program for initialization of the subwindows.  Changing
  27.     the meaning of any of these keys will in concert require working over
  28.     the entire database one fish at a time to therein set or reset the key
  29.     in accordance with the newly assigned meaning for each changed key.
  30.     This update has utilized the formerly one remaining empty key, giving
  31.     it the title "Enhancements".  All of the programs in the data base that
  32.     have Contents files which mention ARP or Rexx have been thus tagged.
  33.     I hope you are not inconvenienced by this; it should help most users
  34.     in tracking FD software support for these important Amiga enhancements.
  35.  
  36.     Names
  37.  
  38.     The Names file contains one 20-byte record for each item in the index,
  39.     where an item is defined by one left-justified entry in a README.list
  40.     or Contents file from an AmigaLib Disk.  However, there are instances
  41.     where the contents of an entire disk is entered as a generalized item,
  42.     such as "Disk#_64".  With such global names excepted, the consecutive
  43.     printable characters in the item name are followed by spaces, with a
  44.     null terminator as the last character.  The characters of a properly
  45.     installed global name are followed immediately by a null character with
  46.     spaces up to the last character; again, the last character is a null
  47.     terminator.  Spaces are not allowed within names.  Note that the update
  48.     program included in the Aquarium distribution (NewFish V1.03 (c) 1988
  49.     B Lennart Olsson) will not produces global names with this interminary
  50.     null character; however, the character can be easily produced whenever
  51.     necessary by means of a binary file editor such as NewZap.
  52.  
  53.     Two examples are shown below (note that the spacing count is crucial):
  54.  
  55.         Disk#_64\000         \000
  56.         Aquarium           \000
  57.  
  58.     The data base in this update has 1836 names; these names are referenced
  59.     as "fish" in the Aquarium.  Those maintaining their own data base will
  60.     have 1846 names if they are current to Disk 360.  This data base is
  61.     changed in the following ways:
  62.  
  63.         Disk 57 was withdrawn due to copyright problems. It was then
  64.          re-issued as Disk 97.  The six entries in the V1.12 Aquarium
  65.          data base attributable to Disk 57 have thus been removed, and
  66.          a retraction notice, such as was already in the data base for
  67.          Disk 80, was substituted.
  68.  
  69.         Six other items were removed from the data base, one each for
  70.          Disks 173, 221, 230, 238, 305, and 324 as these items have
  71.          been withdrawn from distribution (other items on the disks
  72.          that are yet in the catalog will be available on these same
  73.          disk numbers, but re-issued with an "a" appended to the disk
  74.          name).  The Aquarium program (Ver 1.12) knows nothing of "a"
  75.          disk name extensions, but no matter, only a volume number is
  76.          needed in order to examine the currently available contents
  77.          of these disks in this data base.
  78.  
  79.         Disk 176, formerly named "Disk#_176" featured an early release
  80.          of "AnalytiCalc" and a construct titled "Hypertext."  In this
  81.          data base they are separately named, resulting in the creation
  82.          of an additional item - thus an additional "fish" entry.
  83.  
  84.         Several global entries with multiple null trailers (linefeeds
  85.          in Aquarium's printing operations) were changed to conform to
  86.          the space-separated two-null global format described above.
  87.  
  88.  
  89.     index
  90.  
  91.     The index file is the most important file in the data base.  If the
  92.     index is damaged, the database will be difficult to repair.  As Lennart
  93.     suggests, always preserve a copy of the data base files before using
  94.     the NewFish program or before working on the files with binary file
  95.     editors.  The index file consists of sequential 14 byte records, as
  96.     many records as there are items (fish) in the data base.  The meaning
  97.     assigned to the bits in each index item record is described next.
  98.  
  99.     The appearance of a short group of records near the end of this update
  100.     of the index is shown below:
  101.  
  102.         A  B  C  D  E  F  G  H  I  J  K  L  M  N
  103.  
  104.         00 04 34 a0 01 5c 00 08 2d 49 01 61 00 00
  105.         04 00 06 b0 01 5d 00 08 2e aa 02 44 00 00
  106.         04 40 80 04 01 5e 00 08 30 ee 00 b2 00 00
  107.         00 42 12 15 01 5e 00 08 31 a0 00 ef 00 00
  108.         00 20 14 04 01 5e 00 08 32 8f 01 b9 00 00
  109.         08 00 02 38 01 5e 00 08 34 48 01 af 00 00
  110.         00 00 16 10 01 5f 00 08 35 f7 02 5e 00 00
  111.         00 80 16 12 01 60 00 08 38 55 01 4b 00 00
  112.  
  113.     The one-byte wide columns have the following assigned content:
  114.  
  115.         A through D    Keys    Show  which of 30 search keys are set.
  116.         E through F    Disk    AmigaLib Disk number
  117.         G through J    ItemAdr Absolute addrs of data file item texts.
  118.         K through L    ItemSiz Contents record size including trailer.
  119.         M through N    Delim    Record separator bytes (null).
  120.  
  121.     The Aquarium window has a rectangular area containing 30 search key
  122.     subwindows.  Each search key is assigned one bit of the first longword
  123.     of the record.  The two MSBs (lefthand bits) are always zero, and the
  124.     others are set by the user via mouse selects in the red "keys" window.
  125.     The top leftmost search key is the rightmost bit (LSB) of the longword.
  126.     The top next-to-leftmost search item (row 1, column 2) is the 2nd LSB,
  127.     and the sixth LSB is again back to the leftmost column next-to-the-top
  128.     row (row 2, column 1).
  129.  
  130.     The ItemAdr is the absolute address of the first byte of the Contents
  131.     file record in the file "data".  It is this construct that makes the
  132.     Aquarium data base a quickly readable structure, but it does so at the
  133.     cost of serious inflexibility in so far as insert/delete operations are
  134.     concerned.  To insert or delete an item requires recalculation of all
  135.     of the following absolute Contents record addresses.  A phase error
  136.     between the index file and the data file will result in a "graceful"
  137.     termination of the Aquarium program execution and a return of program
  138.     resources to the AmigaDOS Exec on exit.
  139.  
  140.     data
  141.  
  142.     This is a variable-length record file which contains the concatenated
  143.     AmigaLib Disk README.list and Contents files.  The text of each file
  144.     consists of lines of characters, each with one null terminator.  The
  145.     field separator between files is a 56 null character string.  The char
  146.     count in the separator must be 56 null characters.  The separator field
  147.     appears as a 57 null character group when the data file is perused with
  148.     a binary editor, owing to the seeming inclusion of the null character
  149.     that terminates the last line of the file.  As explained above, the
  150.     index file contains address pointers to the first readable character
  151.     of each item, and contains a size value for each item including the
  152.     item separator.  The data file is easily edited with a binary file
  153.     editor such as NewZap.  Usually, but quite definitely not always, the
  154.     last line of a Contents file has the names of the contributors, i.e.,
  155.  
  156.         Author: Gill Green and Dorsal Fin
  157.  
  158.     This update of the data base contains several minor modifications to
  159.     the Contents files found in the original Aquarium release.  The bases
  160.     track fairly well up to about AmigaLib Disk 163, but then for some
  161.     reason there were lots of entries that were different by a few bytes.
  162.     Examination of the two data base files revealed that either Lennart
  163.     has a Contents file processor that, among other things, trims spaces
  164.     at the ends of lines (as are on occasion found in the Contents files
  165.     of the AmigaLib disks sent to my by Fred), or Lennart's disks are
  166.     different from the ones I have.  Lennart does recommend copying the
  167.     Contents files from disks that are to be appended to the data base,
  168.     and editing them for form.  This will help to head off an inappropriate
  169.     entry now and then.  For my part I ran into various problems in this
  170.     regard, ranging from free-format README.list files which did not have
  171.     separated items, European characters embedded in Author names (these
  172.     cause truncation - see Disk 19 or Disk 163 for example), and failure
  173.     to eliminate blank lines in Contents items when constructing the file
  174.     manually. (This is an error I would make now and then.)  I know I did
  175.     a lot of incidental correction, such as adding the name of Bill Nelson
  176.     to the otherwise blank Author field on AmigaLib Disk 237 (CType entry).
  177.  
  178.     Truncating the data base
  179.  
  180.     As careful as you may be in adding new fish to the Aquarium, the time
  181.     will likely come when you will either enter a poorly formed Contents
  182.     file, or will abort during the entry.  When this occurs, it will be
  183.     necessary to truncate the data base.  The description above will allow
  184.     you do this via the knowledge of just where it is you must cleave the
  185.     forms.  If you were caught in the middle of adding a new disk, you must
  186.     truncate back to the previous disk number (examine columns E and F of
  187.     the index.)  A truncated Names file size must be an integral product of
  188.     20 bytes times the number of records, and the index file size must be
  189.     an integral product of 14 bytes times the same number of records.
  190.  
  191.     The data base provided here has 1836 records per data base file, except
  192.     of course, the KeyNames file.  The truncation may be accomplished with
  193.     a disk editor (DiskX, Sec, etc.), or you may wish to use the FileMaster
  194.     program on AmigaLib Disk 298, which has the ability to do binary edits
  195.     and to shorten as well as lengthen files.  If the data base should be
  196.     corrupted, you are in for heavy duty work on the index file once the
  197.     data file is corrected because of the need to recalculate some several
  198.     hundered absolute data pointers.  It would seem an easy task to write
  199.     a stdio filter program to do this, though, would it not?  Another way
  200.     to get this out would be to utilize the assembly language guts of the
  201.     DezHexBin program on AmigLib Disk 321 to make an appropriate filter.
  202.  
  203.     Other Maintenance Items
  204.  
  205.     Included in this kit is a list of all of the README.list/Contents
  206.     files I found necessary to change in order to deal with the data base.
  207.     The file READMElist has these files listed all as README.list###
  208.     files since as Contents files they would be indistinguishable from
  209.     each another when it comes to placement in a directory for reference.
  210.  
  211.     Bugs
  212.  
  213.     The Aquarium program itself is seemingly bug free.  However, as Lennart
  214.     himself admits, the NewFish program is rather touchy.  If possible, use
  215.     NewFish from a Non-Interlaced workbench CLI.  If you use interlace, you
  216.     will likely experience loss of all of the screen icons upon exit.
  217.     There will not likely be any permanent damage to anything as a result
  218.     of the condition which comes along with this situation; I have never
  219.     had any data base file or icon file destruction as a result of it, and
  220.     it does not cause the machine to crash (at least not right away).  This
  221.     may only be a problem with Aquarium V1.12 in the AmigaDOS environment,
  222.     and may be found to have been remedied in future versions - I suppose
  223.     you'll have to speak with Lennart if you want help on this one.
  224.  
  225.